package com.bnd.config;

import lombok.Data;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.stereotype.Component;

/**
 * ai 配置
 */
@Data
@Component
@ConfigurationProperties(prefix = "ai")
public class AiConfig {
    private DashScope dashscope;

    // 显式getter，避免部分环境下lombok未生效导致无法获取配置
    public DashScope getDashscope() {
        return this.dashscope;
    }

    @Data
    public static class DashScope {
        /**
         * api key
         */
        private String apiKey;

        /**
         * 聊天模型
         */
        private String chatModel;

        /**
         * 文本转语音模型
         */
        private String ttsModel;

        /**
         * 温度；[0-2)，值越高输出内容越随机
         */
        private Float temperature;

        /**
         * 单次生成 tokens 的最大长度
         */
        private Integer maxTokens;

        /**
         * 在使用OpenAI SDK与Qwen-Long API或其它兼容模式下的模型服务时，需要设置的base_url值
         */
        private String url;

        /**
         * 语音合成模型
         */
        private String ssModel;

        /**
         * 音色
        */
        private String ssVoice;

        /**
         * 向量模型
         */
        private String embModel;

        /**
         * 向量维度
         */
        private Integer dimension;

        /**
         * 向量url
         */
        private String embUrl;

        /**
         * 语音合成模型
         */
        private String asrModel;

        /**
         * 文生图模型（如：wanx-v1 / wanx-plus）
         */
        private String imageModel;

        /**
         * 默认图像尺寸（如：1024*1024、1664*928）
         */
        private String imageSize;

        /**
         * 文生图异步轮询最大次数
         */
        private Integer imagePollMaxTry;

        /**
         * 文生图异步轮询间隔(毫秒)
         */
        private Integer imagePollIntervalMs;

        /**
         * 文生图功能开关
         */
        private Boolean imageEnabled;

    }
}
